<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Machine code</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Machine_code"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Machine_code rootpage-Machine_code skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Machine code</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">For code that is completely internal to some CPUs and normally inaccessible to programmers, see <a href="Microcode" title="Microcode">Microcode</a>.</div>
<div role="note" class="hatnote navigation-not-searchable">"Native code" redirects here. For the French colonial legal system, see <a href="Native_code_(France)" title="Native code (France)">Native code (France)</a>.</div>
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks"><tbody><tr><th class="sidebar-title"><a href="Execution_(computing)" title="Execution (computing)">Program execution</a></th></tr><tr><th class="sidebar-heading">
General concepts</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Computer_program" title="Computer program">Code</a></li>
<li><a href="Translator_(computing)" title="Translator (computing)">Translation</a>
<ul><li><a href="Compiler" title="Compiler">Compiler</a></li>
<li><a href="Compile_time" title="Compile time">Compile time</a></li>
<li><a href="Optimizing_compiler" title="Optimizing compiler">Optimizing compiler</a></li></ul></li>
<li><a href="Linker_(computing)" title="Linker (computing)"> Linking</a></li>
<li><a href="Execution_(computing)" title="Execution (computing)">Execution</a>
<ul><li><a href="Runtime_system" title="Runtime system">Runtime system</a></li>
<li><a href="Executable" title="Executable">Executable</a></li>
<li><a href="Interpreter_(computing)" title="Interpreter (computing)">Interpreter</a></li>
<li><a href="Virtual_machine" title="Virtual machine">Virtual machine</a></li></ul></li>
<li><a href="Intermediate_representation" title="Intermediate representation">Intermediate representation</a> (IR)</li></ul></td>
</tr><tr><th class="sidebar-heading">
Types of code</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Source_code" title="Source code">Source code</a></li>
<li><a href="Object_code" title="Object code">Object code</a></li>
<li><a href="Bytecode" title="Bytecode">Bytecode</a></li>
<li><a href="Microcode" title="Microcode">Microcode</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
Compilation strategies</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Ahead-of-time_compilation" title="Ahead-of-time compilation">Ahead-of-time</a> (AOT)</li>
<li><a href="Just-in-time_compilation" title="Just-in-time compilation">Just-in-time</a> (JIT)
<ul><li><a href="Tracing_just-in-time_compilation" title="Tracing just-in-time compilation">Tracing just-in-time</a></li>
<li><a href="Compile_and_go_system" title="Compile and go system">Compile and go system</a></li></ul></li>
<li><a href="Precompilation" class="mw-redirect" title="Precompilation">Precompilation</a></li>
<li><a href="Source-to-source_compiler" title="Source-to-source compiler">Transcompilation</a></li>
<li><a href="Dynamic_recompilation" title="Dynamic recompilation">Recompilation</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
Notable runtimes</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Android_Runtime" title="Android Runtime">Android Runtime</a> (ART)</li>
<li><a href="BEAM_(Erlang_virtual_machine)" title="BEAM (Erlang virtual machine)">BEAM</a> (Erlang)</li>
<li><a href="Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR) and <a href="Mono_(software)#Code_Execution_Engine" title="Mono (software)">Mono</a></li>
<li><a href="CPython" title="CPython">CPython</a> and <a href="PyPy" title="PyPy">PyPy</a></li>
<li><a href="Crt0" title="Crt0">crt0</a> (<a href="C_(programming_language)" title="C (programming language)">C</a> target-specific initializer)</li>
<li><a href="Java_virtual_machine" title="Java virtual machine">Java virtual machine</a> (JVM)</li>
<li><a href="LuaJIT" title="LuaJIT">LuaJIT</a></li>
<li><a href="Objective-C" title="Objective-C">Objective-C</a> and <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a>'s</li>
<li><a href="V8_(JavaScript_engine)" title="V8 (JavaScript engine)">V8</a> and <a href="Node.js" title="Node.js">Node.js</a></li>
<li><a href="Zend_Engine" title="Zend Engine">Zend Engine</a> (PHP)</li></ul></td>
</tr><tr><th class="sidebar-heading">
Notable compilers & toolchains</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC)</li>
<li><a href="LLVM" title="LLVM">LLVM</a> and <a href="Clang" title="Clang">Clang</a></li>
<li><a href="Microsoft_Visual_C%2B%2B" title="Microsoft Visual C++">MSVC</a></li>
<li><a href="Glasgow_Haskell_Compiler" title="Glasgow Haskell Compiler">Glasgow Haskell Compiler</a> (GHC)</li></ul></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p>In <a href="Computing" title="Computing">computing</a>, <b>machine code</b> is <a href="Data" title="Data">data</a> <a href="Encoded" class="mw-redirect" title="Encoded">encoded</a> and structured to control a <a href="Computer" title="Computer">computer</a>'s <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU) via its programmable <a href="Interface_(computing)" title="Interface (computing)">interface</a>. A <a href="Computer_program" title="Computer program">computer program</a> consists primarily of sequences of machine-code instructions.<sup id="cite_ref-Stallings_2015_1-0" class="reference"><a href="#cite_note-Stallings_2015-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Machine code is classified as <a href="Native_(computing)" title="Native (computing)">native</a> with respect to its host CPU since it is the language that CPU interprets directly.<sup id="cite_ref-Managed_2-0" class="reference"><a href="#cite_note-Managed-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> A <a href="Interpreter_(software)" class="mw-redirect" title="Interpreter (software)">software interpreter</a> is a <a href="Virtual_machine" title="Virtual machine">virtual machine</a> that processes virtual machine code.
</p><p>A machine-code instruction causes the CPU to perform a specific task such as:
</p>
<ul><li>Load a <a href="Word_(computer_architecture)" title="Word (computer architecture)">word</a> from <a href="Random-access_memory" title="Random-access memory">memory</a> to a <a href="Processor_register" title="Processor register">CPU register</a></li>
<li>Execute an <a href="Arithmetic_logic_unit" title="Arithmetic logic unit">arithmetic logic unit</a> (ALU) operation on one or more registers or memory locations</li>
<li><a href="Jump_instruction" class="mw-redirect" title="Jump instruction">Jump</a> or <a href="Addressing_mode#Skip" title="Addressing mode">skip</a> to an instruction that is not the next one</li></ul>
<p>An <a href="Instruction_set_architecture" title="Instruction set architecture">instruction set architecture</a> (ISA) defines the interface to a CPU and varies by groupings or families of CPU design such as <a href="X86" title="X86">x86</a> and <a href="ARM_architecture_family" title="ARM architecture family">ARM</a>. Generally, machine code compatible with one family is not with others, but there are exceptions. The <a href="VAX" title="VAX">VAX</a> architecture includes optional support of the <a href="PDP-11" title="PDP-11">PDP-11</a> instruction set. The <a href="IA-64" title="IA-64">IA-64</a> architecture includes optional support of the <a href="IA-32" title="IA-32">IA-32</a> instruction set. And, the <a href="PowerPC_600#PowerPC_615" title="PowerPC 600">PowerPC 615</a> can natively process both <a href="PowerPC" title="PowerPC">PowerPC</a> and x86 instructions.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Higher-level_languages">Higher-level languages</h2></div>
<p><a href="Assembly_language" title="Assembly language">Assembly language</a> provides a relatively direct mapping from a <a href="Human-readable" class="mw-redirect" title="Human-readable">human-readable</a> <a href="Source_code" title="Source code">source code</a> to machine code. The source code represents numerical codes as mnemonics and labels.<sup id="cite_ref-Dourish_2004_3-0" class="reference"><a href="#cite_note-Dourish_2004-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> For example, <code><a href="NOP_(code)" title="NOP (code)">NOP</a></code> represents the <a href="X86" title="X86">x86</a> architecture <a href="Opcode" title="Opcode">opcode</a> 0x90. While it is possible to write a program in machine code, doing so is tedious and error-prone. Therefore, programs are usually written in a higher-level language such as assembly but today most are written in an even <a href="High-level_programming_language" title="High-level programming language">higher-level language</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Instruction_set">Instruction set</h2></div>
<p>A machine instruction encodes an operation as a pattern of <a href="Bit" title="Bit">bits</a> based on the specified format for the machine's instruction set.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>nb 1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-sco-p251_5-0" class="reference"><a href="#cite_note-sco-p251-5"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>Instruction sets differ in various ways. Instructions of a set might all be the same length or different instructions might have different lengths. The number of instructions may be relatively small or large. Instructions may or may not align with the architecture's <a href="Word_(computer_architecture)" title="Word (computer architecture)">word length</a><sup id="cite_ref-sco-p251_5-1" class="reference"><a href="#cite_note-sco-p251-5"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p><p>An instruction set needs to execute the circuits of a computer's <a href="Logic_level" title="Logic level">digital logic level</a>. At the digital level, the program needs to control the computer's registers, bus, memory, ALU, and other hardware components.<sup id="cite_ref-sco-p162_6-0" class="reference"><a href="#cite_note-sco-p162-6"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> To control a computer's <a href="Computer_architecture" title="Computer architecture">architectural</a> features, machine instructions are created. Examples of features that are controlled using machine instructions:
</p>
<ul><li><a href="Memory_segmentation" title="Memory segmentation">segment registers</a><sup id="cite_ref-sco-p231_7-0" class="reference"><a href="#cite_note-sco-p231-7"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Protected_mode" title="Protected mode">protected address mode</a><sup id="cite_ref-sco-p237_8-0" class="reference"><a href="#cite_note-sco-p237-8"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Binary-coded_decimal" title="Binary-coded decimal">binary-coded decimal</a> (BCD) arithmetic<sup id="cite_ref-sco-p236_9-0" class="reference"><a href="#cite_note-sco-p236-9"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></li></ul>
<p>The criteria for instruction formats include:
</p>
<ul><li>Instructions most commonly used should be shorter than instructions rarely used.<sup id="cite_ref-sco-p251_5-2" class="reference"><a href="#cite_note-sco-p251-5"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li>
<li>The <a href="High_Bandwidth_Memory" title="High Bandwidth Memory">memory transfer rate</a> of the underlying hardware determines the flexibility of the memory fetch instructions.</li>
<li>The number of bits in the <a href="Random-access_memory#Addressing" title="Random-access memory">address field</a> requires special consideration.<sup id="cite_ref-sco-p253_10-0" class="reference"><a href="#cite_note-sco-p253-10"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li></ul>
<p>Determining the size of the address field is a choice between space and speed.<sup id="cite_ref-sco-p253_10-1" class="reference"><a href="#cite_note-sco-p253-10"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> On some computers, the number of bits in the address field may be too small to access all of the physical memory. Also, <a href="Virtual_address_space" title="Virtual address space">virtual address space</a> needs to be considered. Another constraint may be a limitation on the size of registers used to construct the address. Whereas a shorter address field allows the instructions to execute more quickly, other physical properties need to be considered when designing the instruction format.
</p><p>Instructions can be separated into two types: general-purpose and special-purpose. Special-purpose instructions exploit architectural features that are unique to a computer. General-purpose instructions control architectural features common to all computers.<sup id="cite_ref-sco-p283_11-0" class="reference"><a href="#cite_note-sco-p283-11"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>General-purpose instructions control:
</p>
<ul><li>Data movement from one place to another</li>
<li>Monadic operations that have one <a href="Operand" title="Operand">operand</a> to produce a result</li>
<li>Dyadic operations that have two operands to produce a result</li>
<li>Comparisons and conditional jumps</li>
<li>Procedure calls</li>
<li>Loop control</li>
<li>Input/output</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Overlapping_instruction">Overlapping instruction</h3></div>
<p>On processor architectures with <a href="Variable-length_instruction_set" class="mw-redirect" title="Variable-length instruction set">variable-length instruction sets</a><sup id="cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-0" class="reference"><a href="#cite_note-Jacob-Jakubowski-Venkatesan_2007-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> (such as <a href="Intel" title="Intel">Intel</a>'s <a href="X86" title="X86">x86</a> processor family) it is, within the limits of the control-flow <a href="Self-synchronizing_code" title="Self-synchronizing code">resynchronizing</a> phenomenon known as the <a href="Kruskal_count" title="Kruskal count">Kruskal count</a>,<sup id="cite_ref-Lagarias-Rains-Vanderbei_2001_13-0" class="reference"><a href="#cite_note-Lagarias-Rains-Vanderbei_2001-13"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-1" class="reference"><a href="#cite_note-Jacob-Jakubowski-Venkatesan_2007-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Andriesse-Bos_2014_14-0" class="reference"><a href="#cite_note-Andriesse-Bos_2014-14"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Jakubowski_2016_15-0" class="reference"><a href="#cite_note-Jakubowski_2016-15"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Jämthagen_2016_16-0" class="reference"><a href="#cite_note-Jämthagen_2016-16"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> sometimes possible through opcode-level programming to deliberately arrange the resulting code so that two code paths share a common fragment of opcode sequences.<sup id="cite_ref-NB_Merging_or_branching_17-0" class="reference"><a href="#cite_note-NB_Merging_or_branching-17"><span class="cite-bracket">[</span>nb 2<span class="cite-bracket">]</span></a></sup> These are called <i>overlapping instructions</i>, <i>overlapping opcodes</i>, <i>overlapping code</i>, <i>overlapped code</i>, <i>instruction scission</i>, or <i>jump into the middle of an instruction</i>.<sup id="cite_ref-HN_2021_18-0" class="reference"><a href="#cite_note-HN_2021-18"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Kinder_2010_19-0" class="reference"><a href="#cite_note-Kinder_2010-19"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-RE_2013_20-0" class="reference"><a href="#cite_note-RE_2013-20"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p><p>In the 1970s and 1980s, overlapping instructions were sometimes used to preserve memory space. One example were in the implementation of error tables in <a href="Microsoft" title="Microsoft">Microsoft</a>'s <a href="Altair_BASIC" title="Altair BASIC">Altair BASIC</a>, where <i>interleaved instructions</i> mutually shared their instruction bytes.<sup id="cite_ref-Gates_21-0" class="reference"><a href="#cite_note-Gates-21"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-2" class="reference"><a href="#cite_note-Jacob-Jakubowski-Venkatesan_2007-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-HN_2021_18-1" class="reference"><a href="#cite_note-HN_2021-18"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> The technique is rarely used today, but might still be necessary to resort to in areas where extreme optimization for size is necessary on byte-level such as in the implementation of <a href="Boot_loader" class="mw-redirect" title="Boot loader">boot loaders</a> which have to fit into <a href="Boot_sector" title="Boot sector">boot sectors</a>.<sup id="cite_ref-NB_DR-DOS_707_22-0" class="reference"><a href="#cite_note-NB_DR-DOS_707-22"><span class="cite-bracket">[</span>nb 3<span class="cite-bracket">]</span></a></sup>
</p><p>It is also sometimes used as a <a href="Code_obfuscation" class="mw-redirect" title="Code obfuscation">code obfuscation</a> technique as a measure against <a href="Disassembly" class="mw-redirect" title="Disassembly">disassembly</a> and tampering.<sup id="cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-3" class="reference"><a href="#cite_note-Jacob-Jakubowski-Venkatesan_2007-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Jakubowski_2016_15-1" class="reference"><a href="#cite_note-Jakubowski_2016-15"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p><p>The principle is also used in shared code sequences of <a href="Fat_binaries" class="mw-redirect" title="Fat binaries">fat binaries</a> which must run on multiple instruction-set-incompatible processor platforms.<sup id="cite_ref-NB_Merging_or_branching_17-1" class="reference"><a href="#cite_note-NB_Merging_or_branching-17"><span class="cite-bracket">[</span>nb 2<span class="cite-bracket">]</span></a></sup>
</p><p>This property is also used to find <a href="Unintended_instruction" class="mw-redirect" title="Unintended instruction">unintended instructions</a> called <a href="Gadget_(machine_instruction_sequence)" class="mw-redirect" title="Gadget (machine instruction sequence)">gadgets</a> in existing code repositories and is used in <a href="Return-oriented_programming" title="Return-oriented programming">return-oriented programming</a> as alternative to <a href="Code_injection" title="Code injection">code injection</a> for exploits such as <a href="Return-to-libc_attack" title="Return-to-libc attack">return-to-libc attacks</a>.<sup id="cite_ref-Shacham_2007_23-0" class="reference"><a href="#cite_note-Shacham_2007-23"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-4" class="reference"><a href="#cite_note-Jacob-Jakubowski-Venkatesan_2007-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Microcode">Microcode</h3></div>
<p>In some computers, the machine code of the <a href="Computer_architecture" title="Computer architecture">architecture</a> is implemented by an even more fundamental underlying layer called <a href="Microcode" title="Microcode">microcode</a>, providing a common machine language interface across a line or family of different models of computer with widely different underlying <a href="Dataflow" title="Dataflow">dataflows</a>. This is done to facilitate <a href="Porting" title="Porting">porting</a> of machine language programs between different models.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> An example of this use is the IBM <a href="System/360" class="mw-redirect" title="System/360">System/360</a> family of computers and their successors.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Examples">Examples</h2></div>
<div class="mw-heading mw-heading3"><h3 id="IBM_709x">IBM 709x</h3></div>
<p>The <a href="IBM_700/7000_series#Later_scientific_architecture_(704/709/7090/7094)" title="IBM 700/7000 series">IBM 704, 709, 704x and 709x</a> store one instruction in each instruction word; IBM numbers the bit from the left as S, 1, ..., 35. Most instructions have one of two formats:
</p>
<dl><dt>Generic</dt>
<dd>S,1-11</dd>
<dd>12-13 Flag, ignored in some instructions</dd>
<dd>14-17 unused</dd>
<dd>18-20 Tag</dd>
<dd>21-35 Y</dd></dl>
<dl><dt>Index register control, other than TSX</dt>
<dd>S,1-2 Opcode</dd>
<dd>3-17 Decrement</dd>
<dd>18-20 Tag</dd>
<dd>21-35 Y</dd></dl>
<p>For all but the <a href="IBM_7094" class="mw-redirect" title="IBM 7094">IBM 7094</a> and 7094 II, there are three index registers designated A, B and C; indexing with multiple 1 bits in the tag subtracts the <a href="Logical_or" class="mw-redirect" title="Logical or">logical or</a> of the selected index registers and loading with multiple 1 bits in the tag loads all of the selected index registers. The 7094 and 7094 II have seven index registers, but when they are powered on they are in <i>multiple tag mode</i>, in which they use only the three of the index registers in a fashion compatible with earlier machines, and require a Leave Multiple Tag Mode (<b>LMTM</b>) instruction in order to access the other four index registers.
</p><p>The effective address is normally Y-C(T), where C(T) is either 0 for a tag of 0, the logical or of the selected index registers in multiple tag mode or the selected index register if not in multiple tag mode. However, the effective address for index register control instructions is just Y.
</p><p>A flag with both bits 1 selects indirect addressing; the indirect address word has both a tag and a Y field.
</p><p>In addition to <i>transfer</i> (branch) instructions, these machines have skip instruction that conditionally skip one or two words, e.g., Compare Accumulator with Storage (CAS) does a three way compare and conditionally skips to NSI, NSI+1 or NSI+2, depending on the result.
</p>
<div class="mw-heading mw-heading3"><h3 id="MIPS">MIPS</h3></div>
<p>The <a href="MIPS_architecture" title="MIPS architecture">MIPS architecture</a> provides a specific example for a machine code whose instructions are always 32 bits long.<sup id="cite_ref-Harris_2007_26-0" class="reference"><a href="#cite_note-Harris_2007-26"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 299">: 299 </span></sup> The general type of instruction is given by the <i>op</i> (operation) field, the highest 6 bits. J-type (jump) and I-type (immediate) instructions are fully specified by <i>op</i>. R-type (register) instructions include an additional field <i>funct</i> to determine the exact operation. The fields used in these types are:
</p>
<pre> 6 5 5 5 5 6 bits
[ op | rs | rt | rd |shamt| funct] R-type
[ op | rs | rt | address/immediate] I-type
[ op | target address ] J-type
</pre>
<p><i>rs</i>, <i>rt</i>, and <i>rd</i> indicate register operands; <i>shamt</i> gives a shift amount; and the <i>address</i> or <i>immediate</i> fields contain an operand directly.<sup id="cite_ref-Harris_2007_26-1" class="reference"><a href="#cite_note-Harris_2007-26"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 299–301">: 299–301 </span></sup>
</p><p>For example, adding the registers 1 and 2 and placing the result in register 6 is encoded:<sup id="cite_ref-Harris_2007_26-2" class="reference"><a href="#cite_note-Harris_2007-26"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 554">: 554 </span></sup>
</p>
<pre>[ op | rs | rt | rd |shamt| funct]
0 1 2 6 0 32 decimal
000000 00001 00010 00110 00000 100000 binary
</pre>
<p>Load a value into register 8, taken from the memory cell 68 cells after the location listed in register 3:<sup id="cite_ref-Harris_2007_26-3" class="reference"><a href="#cite_note-Harris_2007-26"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 552">: 552 </span></sup>
</p>
<pre>[ op | rs | rt | address/immediate]
35 3 8 68 decimal
100011 00011 01000 00000 00001 000100 binary
</pre>
<p>Jumping to the address 1024:<sup id="cite_ref-Harris_2007_26-4" class="reference"><a href="#cite_note-Harris_2007-26"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 552">: 552 </span></sup>
</p>
<pre>[ op | target address ]
2 1024 decimal
000010 00000 00000 00000 10000 000000 binary
</pre>
<div class="mw-heading mw-heading2"><h2 id="Bytecode">Bytecode</h2></div>
<p>Machine code is similar to yet fundamentally different from <a href="Bytecode" title="Bytecode">bytecode</a>. Like machine code, bytecode is typically generated (i.e. by a compiler) from source code. But, unlike machine code, bytecode is not directly executable by a CPU. An exception is if a processor is designed to use bytecode as its machine code, such as the <a href="Java_processor" title="Java processor">Java processor</a>. If bytecode is processed by an software interpreter, then that interpreter is a <a href="Virtual_machine" title="Virtual machine">virtual machine</a> for which the bytecode is its machine code.
</p>
<div class="mw-heading mw-heading2"><h2 id="Storage">Storage</h2></div>
<p>During execution, machine code is generally stored in RAM although running form ROM is supported by some devices. Regardless, the code may also be cached in more specialized memory to enhance performance. There may be different caches for instructions and data, depending on the architecture.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p><p>From the point of view of a <a href="Process_(computing)" title="Process (computing)">process</a>, the machine code lives in <i>code space</i>, a designated part of its <a href="Virtual_address_space" title="Virtual address space">address space</a>. In a <a href="Thread_(computing)" title="Thread (computing)">multi-threading</a> environment, different threads of one process share code space along with data space, which reduces the overhead of <a href="Context_switching" class="mw-redirect" title="Context switching">context switching</a> considerably as compared to process switching.<sup id="cite_ref-:2_28-0" class="reference"><a href="#cite_note-:2-28"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Readability">Readability</h2></div>
<p>Machine code is generally considered to be not human readable,<sup id="cite_ref-FOOTNOTESamuelson1984683_29-0" class="reference"><a href="#cite_note-FOOTNOTESamuelson1984683-29"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> with <a href="Douglas_Hofstadter" title="Douglas Hofstadter">Douglas Hofstadter</a> comparing it to examining the atoms of a <a href="DNA" title="DNA">DNA</a> molecule.<sup id="cite_ref-FOOTNOTEHofstadter1979[httpsarchiveorgdetailsgodelescherbach00dougpage290_290]_30-0" class="reference"><a href="#cite_note-FOOTNOTEHofstadter1979[httpsarchiveorgdetailsgodelescherbach00dougpage290_290]-30"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> However, various tools and methods support understanding machine code.
</p><p><a href="Disassembly" class="mw-redirect" title="Disassembly">Disassembly</a> decodes machine code to assembly language which is possible since assembly instructions can often be mapped one-to-one to machine instructions.<sup id="cite_ref-FOOTNOTETanenbaum1990[httpsarchiveorgdetailsstructuredcomput00tanepage398_398]_31-0" class="reference"><a href="#cite_note-FOOTNOTETanenbaum1990[httpsarchiveorgdetailsstructuredcomput00tanepage398_398]-31"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>
</p><p>A <a href="Decompiler" title="Decompiler">decompiler</a> converts machine code to a <a href="High-level_programming_language" title="High-level programming language">high-level language</a>, but the result can be relatively <a href="Obfuscation_(software)" title="Obfuscation (software)">obfuscated</a>; hard to understand.
</p><p>A program can be associated with <a href="Debug_symbol" title="Debug symbol">debug symbols</a> (either embedded in the executable or in a separate file) that allow it to be mapped to external source code. A <a href="Debugger" title="Debugger">debugger</a> reads the symbols to help a programmer interactively <a href="Debugging" title="Debugging">debug</a> the program. Example include:
</p>
<ul><li>The <a href="SHARE_Operating_System" title="SHARE Operating System">SHARE Operating System</a> (1959) for the <a href="IBM_709" title="IBM 709">IBM 709</a>, <a href="IBM_7090" title="IBM 7090">IBM 7090</a>, and <a href="IBM_7094" class="mw-redirect" title="IBM 7094">IBM 7094</a> computers allowed for an loadable code format named <a href="SQUOZE" title="SQUOZE">SQUOZE</a>. SQUOZE was a compressed binary form of <a href="Assembly_language" title="Assembly language">assembly language</a> code and included a symbol table.</li>
<li>Modern IBM mainframe <a href="Operating_system" title="Operating system">operating systems</a>, such as <a href="Z/OS" title="Z/OS">z/OS</a>, have available a symbol table named <i>Associated data</i> (ADATA). The table is stored in a file that can be produced by the <a href="IBM_High-Level_Assembler" class="mw-redirect" title="IBM High-Level Assembler">IBM High-Level Assembler</a> (HLASM),<sup id="cite_ref-IBM_ADA_32-0" class="reference"><a href="#cite_note-IBM_ADA-32"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-IBM_ADATA_33-0" class="reference"><a href="#cite_note-IBM_ADATA-33"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> IBM's <a href="COBOL" title="COBOL">COBOL</a> compiler,<sup id="cite_ref-IBM_COBOL_34-0" class="reference"><a href="#cite_note-IBM_COBOL-34"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> and IBM's <a href="PL/I" title="PL/I">PL/I</a> compiler,<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> either as a separate SYSADATA file or as ADATA records in a <a href="Generalized_object_output_file" class="mw-redirect" title="Generalized object output file">Generalized object output file</a> (GOFF).<sup id="cite_ref-IBM_GOFF_36-0" class="reference"><a href="#cite_note-IBM_GOFF-36"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> This obsoletes the TEST records from <a href="OS/360" class="mw-redirect" title="OS/360">OS/360</a>, although it is still possible to request them and to use them in the <a href="Time_Sharing_Option" title="Time Sharing Option">TSO</a> TEST command.</li>
<li><a href="Windows" class="mw-redirect" title="Windows">Windows</a> uses a symbol table<sup id="cite_ref-Microsoft_Symbols_37-0" class="reference"><a href="#cite_note-Microsoft_Symbols-37"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> that is stored in a <a href="Program_database" title="Program database">program database</a> (<style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced">.pdb</span>) file.<sup id="cite_ref-Microsoft_PDB_38-0" class="reference"><a href="#cite_note-Microsoft_PDB-38"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup></li>
<li>Most <a href="Unix-like" title="Unix-like">Unix-like</a> operating systems have available symbol table formats named <a href="Stabs" title="Stabs">stabs</a> and <a href="DWARF" title="DWARF">DWARF</a>. In <a href="MacOS" title="MacOS">macOS</a> and other <a href="Darwin_(operating_system)" title="Darwin (operating system)">Darwin</a>-based operating systems, the debug symbols are stored in DWARF format in a separate <span class="monospaced">.dSYM</span> file.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Look up <i><b><a href="https://en.wiktionary.org/wiki/machine_code" class="extiw external" title="wiktionary:machine code">machine code</a></b></i> in Wiktionary, the free dictionary.</div></div>
</div>
<ul><li><a href="Computer_code" class="mw-disambig" title="Computer code">Computer code</a></li>
<li><a href="Endianness" title="Endianness">Endianness</a> – Order of bytes in a computer word</li>
<li><a href="List_of_programming_languages_by_type#Machine_languages" title="List of programming languages by type">List of machine languages</a></li>
<li><a href="Machine_code_monitor" title="Machine code monitor">Machine code monitor</a> – Software that was popular during the home computer era of the 1970s and 1980s</li>
<li><a href="Micro-Professor_MPF-I" title="Micro-Professor MPF-I">Micro-Professor MPF-I</a> – Microcomputer released by Multitech in 1981</li>
<li><a href="Object_code" title="Object code">Object code</a> – Sequence of statements or instructions in a computer language</li>
<li><a href="P-code_machine" title="P-code machine">P-code machine</a> – Programming virtual machine</li>
<li><a href="Reduced_instruction_set_computer" title="Reduced instruction set computer">Reduced instruction set computer</a> – Processor executing one instruction in minimal clock cycles (RISC)</li>
<li><a href="Very_long_instruction_word" title="Very long instruction word">Very long instruction word</a> – Processor design that offloads complexity to the compiler</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">On early <a href="Decimal_computer" title="Decimal computer">decimal machines</a>, patterns of characters, digits and digit sign</span>
</li>
<li id="cite_note-NB_Merging_or_branching-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-NB_Merging_or_branching_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-NB_Merging_or_branching_17-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">While overlapping instructions on processor architectures with <a href="Variable-length_instruction_set" class="mw-redirect" title="Variable-length instruction set">variable-length instruction sets</a> can sometimes be arranged to merge different code paths back into one through control-flow <a href="Self-synchronizing_code" title="Self-synchronizing code">resynchronization</a>, overlapping code for different processor architectures can sometimes also be crafted to cause execution paths to branch into different directions depending on the underlying processor, as is sometimes used in <a href="Fat_binaries" class="mw-redirect" title="Fat binaries">fat binaries</a>.</span>
</li>
<li id="cite_note-NB_DR-DOS_707-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-NB_DR-DOS_707_22-0">^</a></b></span> <span class="reference-text"> For example, the <a href="DR-DOS" title="DR-DOS">DR-DOS</a> <a href="Master_boot_record" title="Master boot record">master boot records</a> (MBRs) and <a href="Volume_boot_record" title="Volume boot record">boot sectors</a> (which also hold the <a href="Partition_table" class="mw-redirect" title="Partition table">partition table</a> and <a href="BIOS_Parameter_Block" class="mw-redirect" title="BIOS Parameter Block">BIOS Parameter Block</a>, leaving less than 446 respectively 423 bytes for the code) were traditionally able to locate the boot file in the <a href="FAT12" class="mw-redirect" title="FAT12">FAT12</a> or <a href="FAT16" class="mw-redirect" title="FAT16">FAT16</a> <a href="File_system" title="File system">file system</a> by themselves and load it into memory as a whole, in contrast to their counterparts in <a href="MS-DOS" title="MS-DOS">MS-DOS</a> and <a href="PC_DOS" class="mw-redirect" title="PC DOS">PC DOS</a>, which instead rely on the <a href="System_file" title="System file">system files</a> to occupy the first two <a href="Directory_entry" class="mw-redirect" title="Directory entry">directory entry</a> locations in the file system and the first three sectors of <a href="IBMBIO.COM" title="IBMBIO.COM">IBMBIO.COM</a> to be stored at the start of the data area in contiguous sectors containing a secondary loader to load the remainder of the file into memory (requiring <a href="SYS_(DOS_command)" class="mw-redirect" title="SYS (DOS command)">SYS</a> to take care of all these conditions). When <a href="FAT32" class="mw-redirect" title="FAT32">FAT32</a> and <a href="Logical_block_addressing" title="Logical block addressing">logical block addressing</a> (LBA) support was added, <a href="Microsoft" title="Microsoft">Microsoft</a> even switched to require <a href="I386" title="I386">i386</a> instructions and split the boot code over two sectors for code size reasons, which was no option to follow for DR-DOS as it would have broken <a href="Backward_compatibility" title="Backward compatibility">backward</a>- and cross-compatibility with other operating systems in <a href="Multi-boot" class="mw-redirect" title="Multi-boot">multi-boot</a> and <a href="Chain_load" class="mw-redirect" title="Chain load">chain load</a> scenarios, and as with older <a href="IBM_PC%E2%80%93compatible" class="mw-redirect" title="IBM PC–compatible">IBM PC–compatible</a> PCs. Instead, the <a href="DR-DOS_7.07" class="mw-redirect" title="DR-DOS 7.07">DR-DOS 7.07</a> boot sectors resorted to <a href="Self-modifying_code" title="Self-modifying code">self-modifying code</a>, <a href="Opcode" title="Opcode">opcode</a>-level programming in machine language, controlled utilization of (documented) <a href="Side_effect_(computer_science)" title="Side effect (computer science)">side effects</a>, multi-level data/code overlapping and algorithmic <a href="Fold_(higher-order_function)" title="Fold (higher-order function)">folding</a> techniques to still fit everything into a physical sector of only 512 bytes without giving up any of their extended functions.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-Stallings_2015-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Stallings_2015_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFStallings2015" class="citation book cs1">Stallings, William (2015). <i>Computer Organization and Architecture 10th edition</i>. Pearson Prentice Hall. p. 776. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9789332570405</bdi>.</cite></span>
</li>
<li id="cite_note-Managed-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Managed_2-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGregory2003" class="citation web cs1">Gregory, Kate (2003-04-28). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090923210338/https://www.developer.com/net/cplus/article.php/2197621/Managed-Unmanaged-Native-What-Kind-of-Code-Is-This.htm">"Managed, Unmanaged, Native: What Kind of Code Is This?"</a>. <i>Developer.com</i>. Archived from <a rel="nofollow" class="external text" href="https://www.developer.com/net/cplus/article.php/2197621/Managed-Unmanaged-Native-What-Kind-of-Code-Is-This.htm">the original</a> on 2009-09-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-09-02</span></span>.</cite></span>
</li>
<li id="cite_note-Dourish_2004-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-Dourish_2004_3-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFDourish2004" class="citation book cs1"><a href="Paul_Dourish" title="Paul Dourish">Dourish, Paul</a> (2004). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=DCIy2zxrCqcC&pg=PA7"><i>Where the Action is: The Foundations of Embodied Interaction</i></a>. <a href="MIT_Press" title="MIT Press">MIT Press</a>. p. 7. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-262-54178-5</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-03-05</span></span>.</cite></span>
</li>
<li id="cite_note-sco-p251-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-sco-p251_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sco-p251_5-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-sco-p251_5-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/251">251</a></span>
</li>
<li id="cite_note-sco-p162-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-p162_6-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/162">162</a></span>
</li>
<li id="cite_note-sco-p231-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-p231_7-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/231">231</a></span>
</li>
<li id="cite_note-sco-p237-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-p237_8-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/237">237</a></span>
</li>
<li id="cite_note-sco-p236-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-p236_9-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/236">236</a></span>
</li>
<li id="cite_note-sco-p253-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-sco-p253_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sco-p253_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/253">253</a></span>
</li>
<li id="cite_note-sco-p283-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-sco-p283_11-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/283">283</a></span>
</li>
<li id="cite_note-Jacob-Jakubowski-Venkatesan_2007-12"><span class="mw-cite-backlink">^ <a href="#cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Jacob-Jakubowski-Venkatesan_2007_12-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFJacobJakubowskiVenkatesan2007" class="citation conference cs1 cs1-prop-interproj-linked-name">Jacob, Matthias; Jakubowski, Mariusz H.; <a href="https://www.wikidata.org/wiki/Q102402462" class="extiw external" title="d:Q102402462">Venkatesan, Ramarathnam</a> <span class="cs1-format">[at Wikidata]</span> (20–21 September 2007). <a rel="nofollow" class="external text" href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/jacob07overlap.pdf"><i>Towards Integral Binary Execution: Implementing Oblivious Hashing Using Overlapped Instruction Encodings</i></a> <span class="cs1-format">(PDF)</span>. Proceedings of the 9th workshop on Multimedia & Security (MM&Sec '07). Dallas, Texas, US: <a href="Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a>. pp. <span class="nowrap">129–</span>140. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.69.5258">10.1.1.69.5258</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1288869.1288887">10.1145/1288869.1288887</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-59593-857-2</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14174680">14174680</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180904062911/https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/jacob07overlap.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2018-09-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-25</span></span>.</cite> (12 pages)</span>
</li>
<li id="cite_note-Lagarias-Rains-Vanderbei_2001-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-Lagarias-Rains-Vanderbei_2001_13-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFLagariasRainsVanderbei2009" class="citation book cs1"><a href="Jeffrey_Clark_Lagarias" class="mw-redirect" title="Jeffrey Clark Lagarias">Lagarias, Jeffrey "Jeff" Clark</a>; <a href="Eric_Michael_Rains" class="mw-redirect" title="Eric Michael Rains">Rains, Eric Michael</a>; <a href="Robert_J._Vanderbei" title="Robert J. Vanderbei">Vanderbei, Robert J.</a> (2009) [2001-10-13]. "The Kruskal Count". In Brams, Stephen; Gehrlein, William V.; Roberts, Fred S. (eds.). <i>The Mathematics of Preference, Choice and Order</i>. Studies in Choice and Welfare. Berlin / Heidelberg, Germany: <a href="Springer-Verlag" class="mw-redirect" title="Springer-Verlag">Springer-Verlag</a>. pp. <span class="nowrap">371–</span>391. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/math/0110143">math/0110143</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-79128-7_23">10.1007/978-3-540-79128-7_23</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-79127-0</bdi>.</cite> (22 pages)</span>
</li>
<li id="cite_note-Andriesse-Bos_2014-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Andriesse-Bos_2014_14-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFAndriesseBos2014" class="citation conference cs1 cs1-prop-location-test cs1-prop-interproj-linked-name">Andriesse, Dennis; <a href="https://www.wikidata.org/wiki/Q56565972" class="extiw external" title="d:Q56565972">Bos, Herbert</a> <span class="cs1-format">[at Wikidata]</span> (2014-07-10). Written at Vrije Universiteit Amsterdam, Amsterdam, Netherlands. Dietrich, Sven (ed.). <a rel="nofollow" class="external text" href="https://www.cs.vu.nl/~herbertb/papers/stega_dimva14.pdf"><i>Instruction-Level Steganography for Covert Trigger-Based Malware</i></a> <span class="cs1-format">(PDF)</span>. 11th <a href="International_Conference_on_Detection_of_Intrusions_and_Malware%2C_and_Vulnerability_Assessment" class="mw-redirect" title="International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment">International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment</a> (DIMVA). <a href="Lecture_Notes_in_Computer_Science" title="Lecture Notes in Computer Science">Lecture Notes in Computer Science</a>. Egham, UK; Switzerland: <a href="Springer_International_Publishing" class="mw-redirect" title="Springer International Publishing">Springer International Publishing</a>. pp. 41–50 [45]. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-319-08509-8_3">10.1007/978-3-319-08509-8_3</a>. <a href="EISSN_(identifier)" class="mw-redirect" title="EISSN (identifier)">eISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1611-3349">1611-3349</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-31908508-1</bdi>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0302-9743">0302-9743</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:4634611">4634611</a>. LNCS 8550. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230826135254/https://www.cs.vu.nl/~herbertb/papers/stega_dimva14.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2023-08-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-08-26</span></span>.</cite> (10 pages)</span>
</li>
<li id="cite_note-Jakubowski_2016-15"><span class="mw-cite-backlink">^ <a href="#cite_ref-Jakubowski_2016_15-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Jakubowski_2016_15-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFJakubowski2016" class="citation web cs1">Jakubowski, Mariusz H. (February 2016). <a rel="nofollow" class="external text" href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/mariuszj-jacob07overlap.ppt">"Graph Based Model for Software Tamper Protection"</a>. <a href="Microsoft" title="Microsoft">Microsoft</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20191031000757/https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/mariuszj-jacob07overlap.ppt">Archived</a> from the original on 2019-10-31<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-08-19</span></span>.</cite></span>
</li>
<li id="cite_note-Jämthagen_2016-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-Jämthagen_2016_16-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFJämthagen2016" class="citation book cs1">Jämthagen, Christopher (November 2016). <a rel="nofollow" class="external text" href="https://lucris.lub.lu.se/ws/portalfiles/portal/15764406/dissertation.pdf"><i>On Offensive and Defensive Methods in Software Security</i></a> <span class="cs1-format">(PDF)</span> (Thesis). Lund, Sweden: Department of Electrical and Information Technology, <a href="Lund_University" title="Lund University">Lund University</a>. p. 96. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-91-7623-942-1</bdi>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1654-790X">1654-790X</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230826135321/https://lucris.lub.lu.se/ws/portalfiles/portal/15764406/dissertation.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2023-08-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-08-26</span></span>.</cite> (1+xvii+1+152 pages)</span>
</li>
<li id="cite_note-HN_2021-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-HN_2021_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-HN_2021_18-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://news.ycombinator.com/item?id=27113890">"Unintended Instructions on x86"</a>. <i>Hacker News</i>. 2021. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211225000914/https://news.ycombinator.com/item?id=27113890">Archived</a> from the original on 2021-12-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-24</span></span>.</cite></span>
</li>
<li id="cite_note-Kinder_2010-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-Kinder_2010_19-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFKinder2010" class="citation book cs1">Kinder, Johannes (2010-09-24). <a rel="nofollow" class="external text" href="http://infoscience.epfl.ch/record/167546/files/thesis.pdf"><i>Static Analysis of x86 Executables</i></a> [<i>Statische Analyse von Programmen in x86 Maschinensprache</i>] <span class="cs1-format">(PDF)</span> (Dissertation). Munich, Germany: <a href="Technische_Universit%C3%A4t_Darmstadt" title="Technische Universität Darmstadt">Technische Universität Darmstadt</a>. D17. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201112013336/https://os.zhdk.cloud.switch.ch/tind-tmp-epfl/d6128d9d-0768-42e2-9576-1529206df956?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%27thesis.pdf&response-content-type=application%2Fpdf&AWSAccessKeyId=ded3589a13b4450889b2f728d54861a6&Expires=1605231216&Signature=%2FqOKvUdS%2FETy6xHfdFh5q4UJ82k%3D">Archived</a> from the original on 2020-11-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-25</span></span>.</cite> (199 pages)</span>
</li>
<li id="cite_note-RE_2013-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-RE_2013_20-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://reverseengineering.stackexchange.com/questions/1531/what-is-overlapping-instructions-obfuscation">"What is "overlapping instructions" obfuscation?"</a>. <i>Reverse Engineering Stack Exchange</i>. 2013-04-07. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211225002323/https://reverseengineering.stackexchange.com/questions/1531/what-is-overlapping-instructions-obfuscation">Archived</a> from the original on 2021-12-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-25</span></span>.</cite></span>
</li>
<li id="cite_note-Gates-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-Gates_21-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGates" class="citation cs2"><a href="William_Henry_Gates_III" class="mw-redirect" title="William Henry Gates III">Gates, William "Bill" Henry</a>, <i>Personal communication</i></cite> (NB. According to <a href="#CITEREFJacobJakubowskiVenkatesan2007">Jacob et al</a>.)</span>
</li>
<li id="cite_note-Shacham_2007-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-Shacham_2007_23-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFShacham2007" class="citation conference cs1">Shacham, Hovav (2007). <a rel="nofollow" class="external text" href="https://hovav.net/ucsd/dist/geometry.pdf"><i>The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86)</i></a> <span class="cs1-format">(PDF)</span>. Proceedings of the ACM, CCS 2007. <a href="ACM_Press" class="mw-redirect" title="ACM Press">ACM Press</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211215203157/https://hovav.net/ucsd/dist/geometry.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2021-12-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-24</span></span>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite id="CITEREFKentWilliams1993" class="citation book cs1">Kent, Allen; Williams, James G. (1993-04-05). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=EjWV8J8CQEYC&pg=PA33"><i>Encyclopedia of Computer Science and Technology: Volume 28 - Supplement 13: AerosPate Applications of Artificial Intelligence to Tree Structures</i></a>. CRC Press. pp. <span class="nowrap">33–</span>34. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-8247-2281-4</bdi>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite id="CITEREFTucker1967" class="citation journal cs1">Tucker, S. G. (1967-12-31). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://ieeexplore.ieee.org/document/5388391">"Microprogram control for SYSTEM/360"</a></span>. <i>IBM Systems Journal</i>. <b>6</b> (4): <span class="nowrap">222–</span>241. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Fsj.64.0222">10.1147/sj.64.0222</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0018-8670">0018-8670</a> – via IEEE Xplore.</cite></span>
</li>
<li id="cite_note-Harris_2007-26"><span class="mw-cite-backlink">^ <a href="#cite_ref-Harris_2007_26-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Harris_2007_26-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Harris_2007_26-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Harris_2007_26-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Harris_2007_26-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFHarrisHarris2007" class="citation book cs1">Harris, David; Harris, Sarah L. (2007). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=5X7JV5-n0FIC"><i>Digital Design and Computer Architecture</i></a>. <a href="Morgan_Kaufmann_Publishers" title="Morgan Kaufmann Publishers">Morgan Kaufmann Publishers</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-12-370497-9</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-03-05</span></span>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite id="CITEREFSuZeng2021" class="citation journal cs1">Su, Chao; Zeng, Qingkai (2021). <a rel="nofollow" class="external text" href="https://doi.org/10.1155%2F2021%2F5559552">"Survey of CPU Cache-Based Side-Channel Attacks: Systematic Analysis, Security Models, and Countermeasures"</a>. <i>Security and Communication Networks</i>. <b>2021</b> (1): 5559552. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1155%2F2021%2F5559552">10.1155/2021/5559552</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1939-0122">1939-0122</a>.</cite></span>
</li>
<li id="cite_note-:2-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-:2_28-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://pages.cs.wisc.edu/~bart/537/lecturenotes/processes-threads.html">"CS 537 Notes, Section #3A: Processes and Threads"</a>. <i>pages.cs.wisc.edu</i>. School of Computer, Data & Information Sciences, University of Wisconsin-Madison<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-07-18</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTESamuelson1984683-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTESamuelson1984683_29-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFSamuelson1984">Samuelson 1984</a>, p. 683.</span>
</li>
<li id="cite_note-FOOTNOTEHofstadter1979[httpsarchiveorgdetailsgodelescherbach00dougpage290_290]-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEHofstadter1979[httpsarchiveorgdetailsgodelescherbach00dougpage290_290]_30-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFHofstadter1979">Hofstadter 1979</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/godelescherbach00doug/page/290">290</a>.</span>
</li>
<li id="cite_note-FOOTNOTETanenbaum1990[httpsarchiveorgdetailsstructuredcomput00tanepage398_398]-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTETanenbaum1990[httpsarchiveorgdetailsstructuredcomput00tanepage398_398]_31-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFTanenbaum1990">Tanenbaum 1990</a>, p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/398">398</a>.</span>
</li>
<li id="cite_note-IBM_ADA-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-IBM_ADA_32-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/hla-and-tf/1.6?topic=information-associated-data-architecture">"Associated Data Architecture"</a>. <i>High Level Assembler and Toolkit Feature</i>.</cite></span>
</li>
<li id="cite_note-IBM_ADATA-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-IBM_ADATA_33-0">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/SSENW6_1.6.0/pdf/asmp1024_pdf.pdf#page=304">"Associated data file output"</a> <span class="cs1-format">(PDF)</span>. <a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/SSENW6_1.6.0/pdf/asmp1024_pdf.pdf"><i>High Level Assembler for z/OS & z/VM & z/VSE - 1.6 -HLASM Programmer's Guide</i></a> <span class="cs1-format">(PDF)</span> (Eighth ed.). <a href="IBM" title="IBM">IBM</a>. October 2022. pp. <span class="nowrap">278–</span>332. SC26-4941-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-14</span></span>.</cite></span>
</li>
<li id="cite_note-IBM_COBOL-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-IBM_COBOL_34-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/cobol-zos/6.2?topic=appendixes-cobol-sysadata-file-contents">"COBOL SYSADATA file contents"</a>. <i>Enterprise COBOL for z/OS</i>.</cite></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/epfz/6.1?topic=guide-sysadata-message-information">"SYSADATA message information"</a>. <i>Enterprise PL/I for z/OS 6.1 information</i>. 2025-03-17.</cite></span>
</li>
<li id="cite_note-IBM_GOFF-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-IBM_GOFF_36-0">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/SSLTBW_3.1.0/pdf/ieab200_v3r1.pdf#page=203">"Appendix C. Generalized object file format (GOFF)"</a> <span class="cs1-format">(PDF)</span>. <a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/SSLTBW_3.1.0/pdf/ieab200_v3r1.pdf"><i>z/OS - 3.1 - MVS Program Management: Advanced Facilities</i></a> <span class="cs1-format">(PDF)</span>. <a href="IBM" title="IBM">IBM</a>. 2024-12-18. pp. <span class="nowrap">201–</span>240. SA23-1392-60<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-14</span></span>.</cite></span>
</li>
<li id="cite_note-Microsoft_Symbols-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-Microsoft_Symbols_37-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/symbols">"Symbols for Windows debugging"</a>. <i>Microsoft Learn</i>. 2022-12-20.</cite></span>
</li>
<li id="cite_note-Microsoft_PDB-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-Microsoft_PDB_38-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/en-us/visualstudio/debugger/debug-interface-access/querying-the-dot-pdb-file?view=vs-2022">"Querying the .Pdb File"</a>. <i>Microsoft Learn</i>. 2024-01-12.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Sources">Sources</h2></div>
<ul><li><cite id="CITEREFHofstadter1979" class="citation book cs1"><a href="Douglas_Hofstadter" title="Douglas Hofstadter">Hofstadter, Douglas R.</a> (1979). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/godelescherbach00doug"><i>Gödel, Escher, Bach: An Eternal Golden Braid</i></a></span>. <a href="Basic_Books" title="Basic Books">Basic Books</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-465-02685-0</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-10</span></span>.</cite></li>
<li><cite id="CITEREFSamuelson1984" class="citation journal cs1"><a href="Pamela_Samuelson" title="Pamela Samuelson">Samuelson, Pamela</a> (1984). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://scholarship.law.duke.edu/dlj/vol33/iss4/2">"CONTU Revisited: The Case Against Copyright Protection for Computer Programs in Machine-Readable Form"</a></span>. <i><a href="Duke_Law_Journal" title="Duke Law Journal">Duke Law Journal</a></i>. <b>33</b> (4): <span class="nowrap">663–</span>769. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.2307%2F1372418">10.2307/1372418</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/hein.journals%2Fduklr1984">hein.journals/duklr1984</a>. <a href="JSTOR_(identifier)" class="mw-redirect" title="JSTOR (identifier)">JSTOR</a> <a rel="nofollow" class="external text" href="https://www.jstor.org/stable/1372418">1372418</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-10</span></span>.</cite></li>
<li><cite id="CITEREFTanenbaum1990" class="citation book cs1"><a href="Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Tanenbaum, Andrew S.</a> (1990). <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/398"><i>Structured Computer Organization, Third Edition</i></a>. Prentice Hall. p. <a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput00tane/page/398">398</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-13-854662-5</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFHennessyPatterson1994" class="citation book cs1"><a href="John_L._Hennessy" title="John L. Hennessy">Hennessy, John L.</a>; <a href="David_A._Patterson_(scientist)" class="mw-redirect" title="David A. Patterson (scientist)">Patterson, David A.</a> (1994). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/computerorganiza00henn"><i>Computer Organization and Design. The Hardware/Software Interface</i></a></span>. <a href="Morgan_Kaufmann_Publishers" title="Morgan Kaufmann Publishers">Morgan Kaufmann Publishers</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>1-55860-281-X</bdi>.</cite></li>
<li><cite id="CITEREFTanenbaum1999" class="citation book cs1"><a href="Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Tanenbaum, Andrew S.</a> (1999). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/structuredcomput0000tane_x7x6"><i>Structured Computer Organization</i></a></span> (Fourth ed.). <a href="Prentice_Hall" title="Prentice Hall">Prentice Hall</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-13-020435-8</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-10</span></span>.</cite></li>
<li><cite id="CITEREFBrookshear2007" class="citation book cs1">Brookshear, J. Glenn (2007). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/computerscienceo0000broo_e5b8"><i>Computer Science: An Overview</i></a></span> (Ninth ed.). <a href="Addison_Wesley" class="mw-redirect" title="Addison Wesley">Addison Wesley</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-321-38701-1</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-10</span></span>.</cite></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Application_binary_interface_(ABI)74" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Application_binary_interface_(ABI)74" style="font-size:114%;margin:0 4em"><a href="Application_binary_interface" title="Application binary interface">Application binary interface</a> (ABI)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Parts,<br>conventions</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Data_structure_alignment" title="Data structure alignment">Alignment</a></li>
<li><a href="Calling_convention" title="Calling convention">Calling convention</a></li>
<li><a href="Call_stack" title="Call stack">Call stack</a></li>
<li><a href="Library_(computing)" title="Library (computing)">Library</a>
<ul><li><a href="Static_library" title="Static library">static</a></li></ul></li>
<li><a href="Memory_segmentation" title="Memory segmentation">Memory segmentation</a></li>
<li><a href="Name_mangling" title="Name mangling">Name mangling</a></li>
<li><a href="Object_code" title="Object code">Object code</a></li>
<li><a href="Opaque_pointer" title="Opaque pointer">Opaque pointer</a></li>
<li><a href="Position-independent_code" title="Position-independent code">Position-independent code</a></li>
<li><a href="Relocation_(computing)" title="Relocation (computing)">Relocation</a></li>
<li><a href="System_call" title="System call">System call</a></li>
<li><a href="Virtual_method_table" title="Virtual method table">Virtual method table</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Binary-code_compatibility" title="Binary-code compatibility">Binary-code compatibility</a></li>
<li><a href="Foreign_function_interface" title="Foreign function interface">Foreign function interface</a></li>
<li><a href="Language_binding" title="Language binding">Language binding</a></li>
<li><a href="Linker_(computing)" title="Linker (computing)">Linker</a>
<ul><li><a href="Dynamic_linker" title="Dynamic linker">dynamic</a></li></ul></li>
<li><a href="Loader_(computing)" title="Loader (computing)">Loader</a></li>
<li><a href="Year_2038_problem" title="Year 2038 problem">Year 2038 problem</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Types_of_programming_languages107" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Types_of_programming_languages107" style="font-size:114%;margin:0 4em"><a href="Programming_paradigm" title="Programming paradigm">Types of programming languages</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Level</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul>
<li><a href="Assembly_language" title="Assembly language">Assembly</a></li>
<li><a href="Compiled_language" title="Compiled language">Compiled</a></li>
<li><a href="Interpreted_language" class="mw-redirect" title="Interpreted language">Interpreted</a></li></ul>
<ul><li><a href="Low-level_programming_language" title="Low-level programming language">Low-level</a></li>
<li><a href="High-level_programming_language" title="High-level programming language">High-level</a></li>
<li><a href="Very_high-level_programming_language" title="Very high-level programming language">Very high-level</a></li>
<li><a href="Esoteric_programming_language" title="Esoteric programming language">Esoteric</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_generations" title="Programming language generations">Generation</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="First-generation_programming_language" title="First-generation programming language">First</a></li>
<li><a href="Second-generation_programming_language" title="Second-generation programming language">Second</a></li>
<li><a href="Third-generation_programming_language" title="Third-generation programming language">Third</a></li>
<li><a href="Fourth-generation_programming_language" title="Fourth-generation programming language">Fourth</a></li>
<li><a href="Fifth-generation_programming_language" title="Fifth-generation programming language">Fifth</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox389" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Authority control databases: National </th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4037827-5">Germany</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-24" href="https://en.wikipedia.org/wiki/?title=Machine_code&oldid=1302269183">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>